代码 > 解决flutter升级到 3.47后,No MaterialLocalizations found错误

2026-09-28

具体来说,是使用flex_color_picker这个组件弹窗后报No MaterialLocalizations错误。

和AI一阵Battle,听了AI一阵胡扯后,发现原因了。

很扯淡,因为flutter在3.47后,把material从flutter库里单独分包了。

所以,对应的Locaitons,也从flutter库里的那个,变成了material_ui库里那个。

所以说,虽然是同样类名,同样的代码,但是包不同,引用(指针)就不同喽,暴力硬判断Context中是否有对应类吗,判断出来的只能是null了。

结果么,听AI逼逼叨叨改了一堆,对于就是做个替换,把

import 'package:flutter/material.dart';

替换为

import 'package:material_ui/material_ui.dart';

说真的,问题解决后,真的觉得牙疼。

flutter这个更新策略太累了。但要上架app,也不敢放任flutter在老版本。

因此,做app flutter还算不错,纯桌面,的确不能考虑flutter。

追在后面更新太累。

点击登录